package main

import (
	"fmt"
	"reflect"
	"unsafe"
)

func main5() {
	s := "abc"

	// 打印修改前的字符串信息
	fmt.Printf("修改前字符长度%d, 内容：%s\n", len(s), s)

	// 将字符串内存地址强制转换为unsafe.Pointer
	pointer := unsafe.Pointer(&s)

	// 将unsafe.Pointer强制转换为StringHeader指针
	stringHeaderPointer := (*reflect.StringHeader)(pointer)

	// 通过StringHeader指针，修改其长度属性
	stringHeaderPointer.Len = 10

	// 打印修改后的字符串信息
	fmt.Printf("修改后字符长度%d, 内容：%s\n", len(s), s)
}
